package com.ruoyi.web.until;

import ch.qos.logback.core.joran.util.beans.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.ruoyi.system.domain.KingTemporary.Ruku;
import com.ruoyi.system.domain.KingTemporary.Staff;
import com.ruoyi.system.domain.KingTemporary.StkMisc;
import com.ruoyi.system.domain.KingZjRk;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.List;

public class AssembleUtil {
    public static String biao (){
        JSONObject jsonObject1 = new JSONObject();
        JSONObject jsonObject2 = new JSONObject();
        JSONObject jsonObject3 = new JSONObject();
        JSONObject jsonObject4 = new JSONObject();
        JSONObject jsonObject5 = new JSONObject();
        JSONObject jsonObject6 = new JSONObject();
        JSONObject jsonObject7 = new JSONObject();
        JSONArray jsonArray = new JSONArray();
        JSONObject jsonObject8 = new JSONObject();
        JSONObject jsonObject9 = new JSONObject();
        JSONObject jsonObject10 = new JSONObject();
        JSONObject jsonObject11 = new JSONObject();
        JSONObject jsonObject12 = new JSONObject();
        JSONObject jsonObject13 = new JSONObject();
        JSONObject jsonObject14 = new JSONObject();
        JSONObject jsonObject15 = new JSONObject();
        JSONObject jsonObject16 = new JSONObject();
        JSONObject jsonObject17 = new JSONObject();
        JSONObject jsonObject18 = new JSONObject();
        JSONObject jsonObject19 = new JSONObject();
        jsonObject3.put("FNumber","103002001");
        jsonObject4.put("FNumber","PRE001");
        jsonObject5.put("FNUMBER","QTRKD01_SYS");
        jsonObject6.put("FNumber","103002001");
        jsonObject7.put("FNUMBER","云南英茂花卉产业有限公司-0006");
        jsonObject9.put("FNUMBER","04010100003");
        jsonObject10.put("FNumber","04010100003");
        jsonObject11.put("FNumber","箱");
        jsonObject12.put("FNumber","XS17");
        jsonObject19.put("FNumber","XS17001");
        jsonObject18.put("FSTOCKLOCID__FF100009",jsonObject19);
        jsonObject13.put("FNumber","盆");
        jsonObject14.put("FNumber","KCZT098");
        jsonObject15.put("FNumber","103002001");
        jsonObject16.put("FNumber","095");
        jsonObject17.put("FAUXPROPID__FF100001",jsonObject16);
        jsonObject8.put("F_YMJT_Base4",jsonObject9);
        jsonObject8.put("FMATERIALID",jsonObject10);
        jsonObject8.put("FExtAuxUnitQty",15.0);
        jsonObject8.put("FExtAuxUnitId",jsonObject11);
        jsonObject8.put("F_YMJT_Integer1",1);
        jsonObject8.put("FQty",15.0);
        jsonObject8.put("FSTOCKID",jsonObject12);
        jsonObject8.put("FStockLocId",jsonObject18);
        jsonObject8.put("FUnitID",jsonObject13);
        jsonObject8.put("FSTOCKSTATUSID",jsonObject14);
        jsonObject8.put("F_YMJT_CheckBox2",false);
        jsonObject8.put("FAuxPropId",jsonObject17);
        jsonObject8.put("FPRODUCEDATE",DateUtil.now());
        jsonObject8.put("F_YMJT_Integer",30);
        jsonObject8.put("FOWNERTYPEID","BD_OwnerOrg");
        jsonObject8.put("F_YMJT_Qty2",1.0);
        jsonObject8.put("FKEEPERTYPEID","BD_KeeperOrg");
        jsonObject8.put("F_YMJT_Qty3",1.0);
        jsonObject8.put("FKEEPERID",jsonObject15);
        jsonObject8.put("F_YMJT_CheckBox3",false);
        jsonArray.put(jsonObject8);
        jsonObject2.put("FID",0);
        jsonObject2.put("FStockOrgId",jsonObject3);
        jsonObject2.put("FStockDirect","GENERAL");
        jsonObject2.put("FDate", DateUtil.now());
        jsonObject2.put("FOwnerTypeIdHead","BD_OwnerOrg");
        jsonObject2.put("FBaseCurrId",jsonObject4);
        jsonObject2.put("FBillTypeID",jsonObject5);
        jsonObject2.put("FOwnerIdHead",jsonObject6);
        jsonObject2.put("F_YMJT_Base1",jsonObject7);
        jsonObject2.put("F_YMJT_CheckBox",true);
        jsonObject2.put("F_YMJT_CheckBox1",true);
        jsonObject2.put("F_YMJT_Qty1",1.0);
        jsonObject2.put("F_YMJT_Qty11",1.0);
        jsonObject2.put("FEntity",jsonArray);
        jsonObject1.put("Model",jsonObject2);
        return jsonObject1.toString();
    }

    public static JSONArray JSONArray(JSONArray jsonArray){
        JSONArray jsonArray1 = new JSONArray();
         if(jsonArray.length()>0){
             for(int i=0;i<jsonArray.length();i++) {
                 JSONObject jsonOne = jsonArray.getJSONObject(i);
                 JSONObject jsonObject = new JSONObject();
                 JSONObject jsonObject1 = new JSONObject();
                 JSONObject jsonObject2 = new JSONObject();
                 JSONObject jsonObject3 = new JSONObject();
                 JSONObject jsonObject4 = new JSONObject();
                 JSONObject jsonObject5 = new JSONObject();
                 JSONObject jsonObject6 = new JSONObject();
                 JSONObject jsonObject7 = new JSONObject();
                 JSONObject jsonObject8 = new JSONObject();
                 JSONObject jsonObject9 = new JSONObject();
                 JSONObject jsonObject10 = new JSONObject();
                 JSONObject jsonObject11 = new JSONObject();
                 JSONObject jsonObject12 = new JSONObject();
                 JSONObject jsonObject13 = new JSONObject();
                 jsonObject1.put("FNUMBER",jsonOne.get(""));   //物料编码
                 jsonObject2.put("FNumber",jsonOne.get(""));    //物料编码
                 jsonObject3.put("FNumber",jsonOne.get(""));     //辅助单位
                 jsonObject4.put("FNumber",jsonOne.get(""));      //仓库编号
                 jsonObject5.put("FNumber",jsonOne.get(""));      //仓位编号
                 jsonObject6.put("FSTOCKLOCID__FF100009",jsonObject5);
                 jsonObject7.put("FNumber",jsonOne.get(""));       //入库单位
                 jsonObject8.put("FNumber",jsonOne.get(""));
                 jsonObject9.put("FNumber",jsonOne.get(""));      //形态代码
                 jsonObject10.put("FAUXPROPID__FF100001",jsonObject9);
                 jsonObject11.put("FNumber",jsonOne.get(""));       //组织机构编码
                 jsonObject.put("F_YMJT_Base4",jsonObject1);
                 jsonObject.put("FMATERIALID",jsonObject1);
                 jsonObject.put("FExtAuxUnitQty",jsonOne.get(""));     //辅助入库数量
                 jsonObject.put("FExtAuxUnitId",jsonObject3);
                 jsonObject.put("F_YMJT_Integer1",jsonOne.get(""));           //转换率
                 jsonObject.put("FQty",jsonOne.get(""));                    //入库数量
                 jsonObject.put("FSTOCKID",jsonObject4);
                 jsonObject.put("FStockLocId",jsonObject6);
                 jsonObject.put("FUnitID",jsonObject7);
                 jsonObject.put("FSTOCKSTATUSID",jsonObject8);
                 jsonObject.put("F_YMJT_CheckBox2",false);
                 jsonObject.put("FAuxPropId",jsonObject10);
                 jsonObject.put("FPRODUCEDATE",jsonOne.get(""));         //入库日期String
                 jsonObject.put("F_YMJT_Integer",jsonOne.get(""));       //保质期
                 jsonObject.put("FOWNERTYPEID","BD_OwnerOrg");
                 jsonObject.put("FOWNERID",jsonObject10);
                 jsonObject.put("F_YMJT_Qty2",jsonOne.get(""));           //转换率
                 jsonObject.put("FKEEPERTYPEID","BD_KeeperOrg");
                 jsonObject.put("F_YMJT_Qty3",jsonOne.get(""));           //转换率
                 jsonObject.put("FKEEPERID",jsonObject10);
                 jsonObject.put("F_YMJT_CheckBox3",false);
                 jsonArray1.put(jsonObject);
             }

         }
        return jsonArray1;
    }

//    public static List<KingZjRk> getUserStk(List<StkMisc> list) throws Exception {
//        List<KingZjRk> list1 = new ArrayList<>();
//        if(list.size()>0){
//           for(StkMisc stkMisc:list){
//               KingZjRk kingZjRk = new KingZjRk();
//               BeanUtils.copyProperties(stkMisc,kingZjRk);
//               Ruku ruku = getRuku(stkMisc.getfId());
//               kingZjRk.setfLei(ruku.getResult().getResult().getF_YMJT_Base1().getName().get(0).getValue());
////               List<KingZjRk.Wuliao> wuliaos = new ArrayList<>();
////               List<Ruku.ResultBeanX.ResultBean.STKMISCELLANEOUSENTRYBean> list2 = ruku.getResult().getResult().getSTK_MISCELLANEOUSENTRY();
////               if(list2.size()>0){
////                   for(Ruku.ResultBeanX.ResultBean.STKMISCELLANEOUSENTRYBean stkmiscellaneousentryBean:list2){
////                       KingZjRk.Wuliao wuliao = new KingZjRk.Wuliao();
////                       wuliao.setwName(stkmiscellaneousentryBean.getMATERIALID().getName().get(0).getValue());
////                       wuliao.setwNumber(String.valueOf(stkmiscellaneousentryBean.getFREFQTY()));
////                       wuliao.setwDanwei(stkmiscellaneousentryBean.getBASEUNITID().getName().get(0).getValue());
////                       //参数写入
////
////                       wuliaos.add(wuliao);
////                   }
////
////               }
//               kingZjRk.setfWuliao();
//               list1.add(kingZjRk);
//           }
//       }
//        return list1;
//    }

    public static Ruku getRuku(String ids) throws Exception {
        Ruku ruku = new Ruku();
        if(StringUtils.isNotEmpty(ids)){
            JSONObject jsonObject2 = new JSONObject();
            jsonObject2.put("CreateOrgId",0);
            jsonObject2.put("Number","");
            jsonObject2.put("Id",ids);
            com.alibaba.fastjson.JSONObject object = InvokeHelper.Invoke2("View","STK_MISCELLANEOUS",jsonObject2.toString(),InvokeHelper.getCook());
            ruku = JSON.toJavaObject(object,Ruku.class);
        }
        return ruku;
    }

}
